package proxy_pattern.dynamic.forum;

import java.util.ArrayList;
import java.util.List;

/**
 * 用户数据访问对象类
 * 负责对用户的增删查操作
 *
 * @author 申书航
 * @version 1.0
 */
public class UserDAO {

    private final static List<User> USERS = new ArrayList<>();

    /**
     * 根据用户名查询用户
     * @param username 用户名
     * @return 找到的用户，如果不存在则返回null
     */
    public User queryUser(String username) {
        User u = null;
        for (User user : USERS) {
            if (username.equals(user.getUsername())) {
                u = user;
                break;
            }
        }
        return u;
    }

    /**
     * 添加用户
     * @param user 待添加的用户
     * @return 添加成功返回true，用户名已存在则返回false
     */
    public boolean addUser(User user) {
        if (queryUser(user.getUsername()) != null) {
            return false;
        }
        USERS.add(user);
        return true;
    }

    /**
     * 移除用户
     * @param user 待移除的用户
     * @return 移除成功返回true，用户不存在则返回false
     */
    public boolean removeUser(User user) {
        User u = queryUser(user.getUsername());
        if (u != null) {
            USERS.remove(u);
            return true;
        }
        return false;
    }
}
